perm filename INTRO.RNO[IL,LSP] blob
sn#116150 filedate 1975-04-19 generic text, type T, neo UTF8
.LC.F.J
.PP
0↑40.↑40
.NPB1
.C
↑-INTRODUCTION↑-
.SP3
↑-UCI LISP↑- IS A COMPATIBLE EXTENSION OF THE ↑STANFORD ↑-LISP↑- 1.6
PROGRAMMING SYSTEM FOR THE ↑-DEC PDP-10↑-.
↑THE EXTENSIONS MAKE ↑-UCI LISP↑- A POWERFUL AND CONVENIENT
INTERACTIVE PROGRAMMING ENVIRONMENT FOR RESEARCH AND
TEACHING IN ARTIFICIAL INTELLIGENCE AND ADVANCED LIST PROCESSING
APPLICATIONS.
↑ALL ↑STANFORD ↑-LISP↑- PROGRAMS,
(EXCEPT THOSE USING THE ↑-BIGNUM↑- PACKAGE) CAN BE RUN DIRECTLY
IN ↑-UCI LISP↑-.
↑IN ADDITION,
THE EXTENDED FEATURES OF ↑-UCI LISP↑- MAKE IT MUCH EASIER TO
TRANSFER INTERPRETED ↑-LISP↑- PROGRAMS FROM ↑-BBN LISP↑- AND
↑-MIT AI LISP↑- (WE HAVE ALREADY CONVERTED SEVERAL LARGE PROGRAMS,
INCLUDING A VERSION OF THE ↑WOODS' ↑AUGMENTED ↑TRANSITION
↑NETWORK ↑PARSER FROM ↑-BBN LISP↑-, AND A VERSION OF ↑MICRO-↑PLANNER
FROM ↑-MIT AI LISP↑-.)
.SP2
↑THIS MANUAL DESCRIBES THE EXTENSIONS TO THE ↑STANFORD
↑-LISP 1.6↑- SYSTEM, AND SHOULD THUS BE READ IN
CONJUNCTION WITH THE LATEST ↑STANFORD ↑-LISP↑- 1.6 MANUAL,
CURRENTLY ↑-SAILON 28.6↑- (↑STANFORD ↑ARTIFICIAL ↑INTELLIGENCE
↑LABORATORY ↑OPERATING ↑NOTE 28.6).
↑AS CAN BE SEEN FROM THE RELATIVE SIZES OF THE TWO DOCUMENTS
↑-UCI LISP↑- REPRESENTS A SUBSTANTIAL EXTENSION TO ↑STANFORD ↑-LISP↑-,
AND FROM OUR OWN EXPERIENCE PRESENTS A MAJOR IMPROVEMENT IN THE
HABITABILITY OF THE SYSTEM FOR BOTH NAIVE AND EXPERIENCED USERS.
(↑A MAJORITY OF THE EXTENSIONS WERE SUGGESTED BY
THE FEATURES OF ↑-BBN LISP↑-, PROBABLY THE BEST INTERACTIVE
↑-LISP↑- SYSTEM IN EXISTENCE, BUT UNFORTUNATELY AVAILABLE ONLY
ON ↑-TENEX↑-, A PAGED VIRTUAL MEMORY SYSTEM FOR THE ↑-PDP-10↑-,
PRODUCED BY ↑BOLT, ↑BERANEK AND ↑NEWMAN ↑INC.)
.SP2
↑THE MAJOR EXTENSIONS TO ↑STANFORD ↑-LISP↑- CAN BE BRIEFLY
DESCRIBED AS FOLLOWS:
.IM10
.UD3
.SP1
1)↑40↑IMPROVEMENTS IN STORAGE UTILIZATION:
.IM4
.UD3
A)↑40↑-UCI LISP↑- IS REENTRANT AND
COMPILED CODE MAY BE PLACED IN THE SHARABLE HIGH SEGMENT
.UD3
B)↑40THE ALLOCATOR ALLOWS REALLOCATION OF ALL SPACES (INCLUDING ↑BINARY
↑PROGRAM ↑SPACE) AT ANY TIME
.UM4
.UD3
.SP1
2)↑40↑POWERFUL INTERACTIVE DEBUGGING FACILITIES, INCLUDING:
.IM4
.UD3
A)↑40↑SOPHISTICATED CONDITIONAL BREAKPOINT AND FUNCTION TRACING FACILITIES
.UD3
B)↑40↑A POWERFUL LIST STRUCTURE EDITOR FOR EDITING FUNCTION
DEFINITIONS AND DATA
.UD3
C)↑40↑FACILITIES FOR EXAMINING, CORRECTING AND CONTINUING TO RUN
IN THE CONTEXT OF A PROGRAM WHICH HAS BEEN INTERRUPTED BY AN
ERROR OR BY A USER INITIATED TEMPORARY INTERRUPT
.SP1
.UM4
.UD3
3)↑40↑EXTENSIONS TO THE ↑I/↑O FACILITIES AVAILABLE IN THE BASIC
SYSTEM, INCLUDING:
.B
.IM4
.UD3
A)↑40↑CONVENIENT ↑I/↑O TO DISK FILES, INCLUDING USE OF PROJECT/PROGRAMMER
DESIGNATIONS AND WAYS TO SAVE AND RESTORE FUNCTIONS AND DATA
.UD3
B)↑40↑READ ↑MACROS (PATTERNED AFTER ↑←↑-MIT AI LISP↑←↑-) FOR EXTENDING THE
↑-LISP READ↑- ROUTINE
.UD3
C)↑40↑A ROUTINE FOR PRINTING CIRCULAR OR DEEPLY NESTED EXPRESSIONS
.UD3
D)↑40↑ROUTINES TO MODIFY THE CONTROL TABLE OF THE ↑-LISP READ↑- ROUTINE
.UD3
E)↑40↑SEVERAL USEFUL FUNCTIONS FOR CARRIAGE POSITIONING, TELETYPE ECHO
AND PROMPT CHARACTER CONTROL, READING INPUT A LINE AT A TIME, ETC.
.SP1
.UM4
.UD3
4)↑40↑FUNCTIONS FOR EXAMINING AND MODIFYING THE
SPECIAL PUSHDOWN STACK WHICH HOLDS THE
CONTEXT OF ONGOING COMPUTATIONS
.SP1
.UD3
5)↑40↑ERROR PROTECTION FACILITIES:
.IM4
.UD3
A)↑40↑-NIL, T↑- AND OTHER ATOMS CANNOT BE EASILY DAMAGED BY
↑←↑-RPLACA↑←↑-, ↑←↑-RPLACD↑←↑-, ↑←↑-SETQ↑←↑- AND ↑←↑-SET↑←↑-
.UD3
B)↑40↑THE SYSTEM WILL NO LONGER GO INTO AN INFINITE LOOP
WHEN SEARCHING FOR THE FUNCTION DEFINITION OF THE ↑←↑-CAR↑←↑- OF
A FORM
.UM4
.SP1
.UD3
6)↑40↑EXTENDED BASIC FUNCTIONS INCLUDING:
.IM4
.UD3
A)↑40↑NEW PREDICATES FOR DATA TYPES, AND PREDICATES WHICH RETURN USEFUL
VALUES
.UD3
B)↑40↑NEW LIST CONSTRUCTION AND MODIFICATION FUNCTIONS
.UD3
C)↑40↑MULTIPLE SEQUENTIAL FORM EVALUATION IN ↑-LAMBDA↑- EXPRESSIONS
.UD3
D)↑40↑AN EFFICIENT N-WAY SWITCH
.UD3
E)↑40↑AVAILABILITY OF THE ↑-FORTRAN↑- MATHEMATICAL FUNCTIONS
.UD3
F)↑40↑MAPPING FUNCTIONS WITH SEVERAL ARGUMENTS, AND ONES WHICH
BUILD NEW LISTS USING ↑←↑-NCONC↑←↑- TO JOIN SEGMENTS
.UM14
.SP2
↑AS MENTIONED, WE HAVE MADE ↑-UCI LISP↑- A ↑←REENTRANT↑← SYSTEM
WHICH MAY BE USED BY SEVERAL USERS SIMULTANEOUSLY.
↑THUS, WHILE THE NEW FEATURES OF ↑-UCI LISP↑- REQUIRE A LARGER
SYSTEM THAN THE ORIGINAL ↑STANFORD ↑-LISP↑-, THIS IMPACT IS
MINIMIZED IN ANY ENVIRONMENT WITH MORE THAN ONE ↑-LISP↑- USER.
↑IN ADDITION, SINCE THE ↑←BASIC↑← ↑-LISP↑- SYSTEM CONTAINS MANY
FEATURES PREVIOUSLY AVAILABLE ONLY IN THE VARIOUS EXTENSION
FILES (SUCH AS ↑-SMILE, ALVINE, TRACE↑-, ETC.) OR WHICH HAD TO
BE WRITTEN BY THE USER, IT IS POSSIBLE TO WRITE AND DEBUG MEANINGFUL
JOBS IN THE BASIC SYSTEM, WITHOUT GETTING EXTRA CORE. ↑THE
↑-UCI LISP↑- SYSTEM HAS A SHARABLE HIGH SEGMENT OF 14↑K AND
A USER SPECIFIC LOW SEGMENT OF 8↑K.
↑THUS, IF THERE ARE TWO USERS THE VIRTUAL CORE LOAD IS 30↑K, WHILE
GETTING THE SAME CAPABILITIES IN ↑STANFORD ↑-LISP↑- WOULD
REQUIRE A LOAD OF 32↑K FOR THE TWO USERS, AND OF COURSE THE
IMPROVEMENT IS EVEN MORE NOTICEABLE WITH MORE USERS SHARING
↑-UCI LISP↑- (ABOUT 8↑K IS SAVED FOR EACH ADDITIONAL USER).
.SP2
↑THE ABILITY TO PUT COMPILED CODE IN THE SHARABLE SEGMENT AND
TO REALLOCATE ↑BINARY ↑PROGRAM ↑SPACE MAKES IT POSSIBLE TO BUILD
SYSTEMS IN WHICH MUCH OF THE SYSTEMS CODE IS COMPILED ↑-LISP↑-
EXPRESSIONS.
↑ALL OF THE ADVANTAGES OF HIGHER LEVEL CODING ARE OBTAINED,
AND THE ↑-LISP↑- COMPILER
(BORROWED FROM ↑STANFORD WITH SOME SMALL MODIFICATIONS)
PRODUCES BETTER RESULTS THAN MOST
ASSEMBLY LANGUAGE CODERS.
↑SUCH PARTIALLY COMPILED SYSTEMS CAN NOW BE USED WITHOUT CLOSING OFF
THE POSSIBILITY OF THE ↑←USER↑← EXTENDING ↑BINARY ↑PROGRAM ↑SPACE TO STORE
HIS OWN COMPILED CODE.
↑IN GENERAL, IT IS NOW POSSIBLE TO COMPILE A SYSTEM INCREMENTALLY.
↑THE USER CAN SAVE THE LOW SEGMENT
WHICH CONTAINS THE PARTIALLY COMPILED
SYSTEM, THEN TEST OUT NEW MATERIAL IN INTERPRETED FORM
BEFORE EXTENDING THE ↑BINARY ↑PROGRAM ↑SPACE IN THE SEGMENT TO LOAD THE
NEW COMPILED MATERIAL.
.SP2
↑THE DEBUGGING FACILITIES FORM THE BULK OF THE EXTENSIONS TO
↑STANFORD ↑-LISP↑-, AND ARE IDENTICAL WITH THE EQUIVALENT FACILITIES
AVAILABLE IN ↑-BBN LISP↑- IN THE SUMMER OF 1971.
(↑-BBN LISP↑- HAS BEEN EXTENDED IN THE INTERVENING PERIOD.)
↑THEY MAKE IT POSSIBLE FOR THE USER TO TRACK DOWN BUGS IN
COMPLICATED RECURSIVE PROGRAMS BY MAKING IT EASIER FOR HIM TO
INVESTIGATE THE CONTEXT IN WHICH THE BUG OCCURRED (E.G↑56 TO SEE AT WHAT
POINT ERRONEOUS DATA WAS PASSED AS AN ARGUMENT, OR AT WHAT POINT
THE FLOW OF CONTROL WENT AWRY, ETC.)
↑THE USER DOES NOT HAVE TO PLAN IN ADVANCE OR SET BREAKPOINTS TO GET
ACCESS TO THE CONTEXT OF THE ERROR. ↑THE SYSTEM HOLDS THE
CONTEXT OF ANY ERROR AUTOMATICALLY, ALLOWING THE USER TO PERFORM
WHATEVER INVESTIGATIONS HE WISHES,
AND MAKE ANY CORRECTIONS WHICH MAY BE USEFUL.
↑THIS ALSO MAKES IT POSSIBLE TO PATCH UP A SMALL ERROR, LIKE AN
UNBOUND ATOM OR SIMPLE UNDEFINED FUNCTION, IN THE MIDDLE OF A LARGE
COMPUTATION AND TO CONTINUE THE COMPUTATION WITHOUT HAVING TO
START FROM SCRATCH.
↑SIMILARLY, THE USER CAN TRY OUT IDEAS FOR CORRECTING THE ERROR, WITHOUT
LEAVING THE CONTEXT OF THE ERROR, AND GO ON ONLY WHEN HE HAS PINNED
DOWN THE ERROR AND ITS POSSIBLE SOLUTION.
↑IF THE INFORMATION AVAILABLE AT THE TIME THE ↑-LISP↑- SYSTEM
DISCOVERS THE ERROR IS INSUFFICIENT TO PIN DOWN THE CAUSE OF
THE ERROR, THE USER CAN HAVE THE SYSTEM REPEAT THE COMPUTATION,
WITH A SPECIAL TRACE FEATURE THAT PRINTS OUT WHATEVER THE USER
WISHES TO KNOW AT VARIOUS POINTS IN THE COMPUTATION. (↑THE USER CAN
SPECIFY BOTH WHAT DATA IS TO BE PRINTED AND UNDER WHAT CONDITIONS HE
WISHES IT PRINTED.)
↑THE USER CAN ALSO FORCE THE SYSTEM TO ESTABLISH A BREAKPOINT ANYWHERE
IN HIS COMPUTATION,
SO HE CAN INVESTIGATE THE CONTEXT BEFORE THE
ERROR HAS COVERED ITS TRACKS.
.SP2
↑THE ↑-UCI LISP↑- EDITOR (BORROWED WITH SOME MODIFICATIONS FROM
THE ↑-BBN LISP↑- SYSTEM) IS ACTUALLY A LANGUAGE FOR INCREMENTAL
MODIFICATION OF LIST STRUCTURES.
↑IT CAN BE USED BY A USER AT A TERMINAL TO MODIFY FUNCTION DEFINITIONS
(EVEN DURING THE MIDDLE OF A BREAK WHILE THE FUNCTION IS STILL ON THE
CONTEXT STACK) OR TO CHANGE COMPLICATED DATA STRUCTURES.
↑IT CAN ALSO BE USED AS A SUBROUTINE BY OTHER FUNCTIONS, MAKING IT
CONVENIENT FOR ONE FUNCTION TO MODIFY ANOTHER FUNCTION.
↑THIS IS ACTUALLY DONE BY THE ↑-BREAK↑- PACKAGE, TO IMPLEMENT
THE FUNCTION ↑-BREAKIN↑- WHICH INSERTS A BREAKPOINT AT ANY
ARBITRARY POINT IN A USER FUNCTION.
↑THE EDITOR CAN MOVE AROUND IN A STRUCTURE BY
SMALL LOCAL MOTIONS, OR BY SEARCHING FOR A PORTION OF THE STRUCTURE
WHICH MATCHES SOME GIVEN PATTERN.
↑IT CAN INSERT NEW ITEMS, DELETE OLD ONES, INTERCHANGE ITEMS,
CHANGE STRUCTURE, EMBED OLD ITEMS IN NEW STRUCTURE OR EXTRACT THEM
FROM OLD STRUCTURE, ETC.
↑IN ORDER TO BE ABLE TO EDIT A FUNCTION WHICH IS STILL
ON THE CONTEXT STACK AND TO HAVE ALL OF THE PORTIONS ON
THE CONTEXT STACK BE CHANGED AT ONCE, THE MODIFICATIONS PERFORMED BY
THE EDITOR ARE PHYSICAL CHANGES OF THE EXISTING STRUCTURE.
↑ALTHOUGH ALL THE MODIFICATIONS ARE "DESTRUCTIVE",
USING ↑←↑-RPLACA↑←↑- AND ↑←↑-RPLACD↑←↑- TO MAKE CHANGES IN THE GIVEN
STRUCTURE, ALL OF THE MODIFICATIONS CAN BE SELECTIVELY REVERSED BY
MEANS OF THE ↑←↑-UNDO↑←↑- FEATURE.
↑THUS THE USER CAN MAKE MODIFICATIONS WITHOUT WORRYING ABOUT
COMPLETELY DESTROYING HIS FUNCTION DEFINITIONS BY ACCIDENT.
.SP2
↑THE EDITOR IS A VERY LARGE, COMPLICATED FUNCTION, AND ITS
DOCUMENTATION INDICATES THAT FACT.
↑HOWEVER, THE FIRST PART OF THE EDITOR DOCUMENTATION GIVES A
CONVENIENT RUNDOWN ON HOW TO USE THE EDITOR AS A NOVICE,
AND WITH THAT THE BEGINNING USER CAN GET QUITE A BIT DONE.
↑BY SKIMMING THE REMAINDER OF THE EDITOR CHAPTER THE USER CAN
GET SOME IDEA OF THE MANY EXTRA USEFUL FEATURES AVAILABLE, AND
CAN SLOWLY EXTEND HIS CAPABILITIES WITH THE EDITOR.
↑IT HAS BEEN A COMMON OBSERVATION THAT IN THE PROCESS OF WRITING
AND DEBUGGING A LARGE SYSTEM, OR EVEN A SMALL PROGRAM, THE
AVERAGE USER SPENDS MOST OF HIS TIME IN EDITING HIS
FUNCTIONS.
↑BY BECOMING FAMILIAR WITH ALL THE FEATURES OF THE LIST STRUCTURE
EDITOR THE USER CAN CUT HIS EDITING TIME CONSIDERABLY, AND MAKE
LARGE OR SUBTLE CHANGES EASILY.
↑THE USER SHOULD ALSO BEAR IN MIND THAT THE EDITOR IS AVAILABLE
AS A FUNCTION WHICH CAN BE USED BY OTHER FUNCTIONS.
↑THIS CAN MAKE MANY JOBS SUBSTANTIALLY EASIER.
.SP2
↑←↑-NOTE↑←↑-:↑40↑←↑-ALVINE↑←↑- IS ↑←NO LONGER AVAILABLE↑←
IN THE STANDARD VERSION OF ↑-UCI LISP↑- BECAUSE WE
BELIEVE THAT THE NEW EDITOR AND ↑I/↑O FACILITIES ARE
SUBSTANTIALLY BETTER THAN THOSE PROVIDED BY ↑←↑-ALVINE↑←↑-.
(↑THERE IS AN ASSEMBLY SWITCH WHICH MAKES IT POSSIBLE TO
RUN ↑←↑-ALVINE↑←↑- IN ↑-UCI LISP↑- IF NECESSARY.)
.SP2
↑SOME OF THE EXTENDED ↑I/↑O FACILITIES OF ↑-UCI LISP↑-
WERE AVAILABLE IN ↑-SMILE↑-, ETC↑56, BUT PUTTING THEM IN THE
SHARED SYSTEM SAVES CORE.
↑THE ↑READ ↑MACRO FACILITY IS A GREAT CONVENIENCE AND MAKES USING
↑MICRO-↑PLANNER MUCH SIMPLER.
↑THE USER-MODIFIED ↑←↑-READ↑←↑- CONTROL TABLE IS MORE
GENERAL THAN THAT AVAILABLE IN THE ↑STANFORD ↑-SCAN↑- PACKAGE (WHICH IS STILL USEFUL AND AVAILABLE), AND
THE NEW ↑←↑-SPRINT↑←↑- IS FASTER THAN THE ORIGINAL.
↑THE OTHER FUNCTIONS ARE QUITE CONVENIENT, AND WILL MAKE MANY
TASKS SIMPLER.
.SP2
↑THE SPECIAL PUSHDOWN LIST HAS BEEN EXTENDED TO PROVIDE THE
EQUIVALENT OF THE ↑-BBN LISP↑- CONTEXT STACK.
↑THIS IS THE BACKBONE OF THE ↑-ERROR↑- AND ↑-BREAK↑- PACKAGES,
SINCE IT ENABLES RUNNING PROGRAMS TO EXAMINE THEIR
CONTEXT, AND TO CHANGE IT IF NECESSARY.
↑THE STACK FUNCTIONS, PARTICULARLY ↑←↑-RETFROM↑←↑- AND
↑←↑-OUTVAL↑←↑- MAKE IT POSSIBLE TO EXPERIMENT WITH VARIOUS CONTROL
REGIMES, WHERE SUBORDINATE FUNCTIONS CAN ABORT AND RETURN FROM
HIGHER LEVEL FUNCTIONS ON THE BASIS OF LOCAL INFORMATION.
↑INDISCRIMINATE FOOLING AROUND WITH THE STACK IS LIKELY TO
PRODUCE PECULIAR AND UNWANTED RESULTS, BUT THE STACK FUNCTIONS
CAN BE EXTREMELY HELPFUL AT TIMES.
.SP2
↑THE ERROR PROTECTION FACILITIES ARE AN ATTEMPT TO CATCH SOME
OF THE COMMON ERRORS OF NOVICES (AND EXPERIENCED USERS TOO)
WHICH CAN CLOBBER THE SYSTEM.
↑THERE ARE FEW THINGS MORE CONFUSING THAN WHAT HAPPENS TO THE
SYSTEM WHEN THE VALUE OF ↑-NIL↑- IS NO LONGER ↑-NIL↑-, OR
IF THE VALUE OF ↑T BECOMES ↑-NIL↑-.
↑IN ↑STANFORD ↑-LISP↑- THIS COULD EASILY HAPPEN IF ↑←↑-SETQ↑←↑-
OR ↑←↑-SET↑←↑- RECEIVED A LIST AS A FIRST ARGUMENT.
↑THIS CAN NO LONGER HAPPEN IN ↑-UCI LISP↑-.
↑SIMILARLY, ↑STANFORD ↑-LISP↑- OCCASIONALLY WENT INTO INFINITE
LOOPS BECAUSE A FORM HAD A ↑←↑-CAR↑←↑- WHICH WAS ↑-NIL↑- OR HAD NO
FUNCTION DEFINITION AND EVALUATED TO ↑-NIL↑-.
↑THIS HAS BEEN CORRECTED.
.SP2
↑THE EXTENDED BASIC FUNCTIONS ARE ONES WHICH WERE OF GREAT
USE IN WRITING THE EDITOR, ↑-BREAK↑- PACKAGE, ETC., AND IN BRINGING
UP TRANSLATED VERSIONS OF ↑-BBN LISP↑- AND ↑-MIT AI LISP↑-
PROGRAMS.
↑THE MULTIPLE FORM ↑-LAMBDA↑- EXPRESSION AND THE N-WAY SWITCH
↑←↑-SELECTQ↑←↑- SHOULD MAKE MANY PROGRAMMING JOBS MUCH
MORE CONVENIENT, AS SHOULD THE AVAILABILITY OF MAPPING FUNCTIONS
WITH SEVERAL ARGUMENTS.
↑THE USER WILL ALMOST CERTAINLY PROFIT FROM SKIMMING THROUGH
THE CHAPTERS ON THESE EXTENDED FEATURES, JUST TO KNOW WHAT IS
AVAILABLE.
.SP3
.BP
.C
.UL
↑CREDITS AND ↑ACKNOWLEDGEMENTS
.SP3
↑THE DESIGN AND OVERALL DIRECTION OF THE IMPLEMENTATION OF THIS
SYSTEM ARE THE RESPONSIBILITY OF ↑ROBERT ↑BOBROW, WHO
ALSO MADE THE FIRST MODIFICATIONS TO ↑STANFORD ↑-LISP↑-, INCLUDING
THE ORIGINAL ERROR PACKAGE, ACCESSIBLE CONTEXT STACK AND STORAGE
REALLOCATOR.
↑IN LARGE PART THE EXISTENCE OF THE FINAL SYSTEM AND ITS EXTENSIVE
DOCUMENTATION IS DUE TO THE ↑HERCULEAN EFFORTS OF ↑DARYLE ↑LEWIS,
WHO DID THE BULK OF THE MODIFICATIONS TO THE ASSEMBLY LANGUAGE
CODE (INCLUDING MAKING ↑STANFORD ↑-LISP↑- REENTRANT)
AND CORRECTED THE COMPILER AND ↑-LAP↑- SYSTEMS. ↑HE SINGLEHANDEDLY
TRANSFERRED THE ENTIRE ↑-BBN LISP↑- EDITOR AND ITS DOCUMENTATION
TO OUR SYSTEM, AND IN GENERAL PERFORMED VITAL AND ARDUOUS
DESIGN, PROGRAMMING AND DOCUMENTATION TASKS TOO NUMEROUS
TO MENTION.
↑RICHARD ↑BURTON DID YEOMAN'S LABOR BY TRANSFERRING (AND
EXTENDING) THE ↑-BBN LISP↑- ↑-ERROR↑- AND
↑-BREAK↑- PACKAGES, AND PROVIDING THEIR DOCUMENTATION.
↑WHITFIELD ↑DIFFIE OF ↑STANFORD HAS HELPED US OUT OF SEVERAL
STICKY PROBLEMS WITH THE ↑-LISP↑- SYSTEM AND ITS COMPILER.
↑THE ORIGINAL IMPLEMENTATION OF THE EDITOR AND SEVERAL ↑I/↑O
FUNCTIONS IS DUE TO ↑RODGER ↑KNAUS, AS WELL AS MANY HELPFUL
SUGGESTIONS.
↑FINALLY, BUT OF VITAL IMPORTANCE, IS ↑ALAN ↑BELL, WHOSE GREAT
KNOWLEDGE OF THE ↑-PDP-10↑- OPERATING SYSTEM HELPED US THROUGH
MANY ROUGH TIMES, AND WHO HAS DONE MUCH OF THE TRANSFERRING OF
↑-BBN LISP↑- AND ↑-MIT AI LISP↑- PROGRAMS.
.SP2
↑WE ARE TRIPLY INDEBTED TO THE DESIGNERS, IMPLEMENTERS AND
DOCUMENTERS OF ↑-BBN LISP↑-, PARTICULARLY ↑DANIEL ↑BOBROW AND
↑WARREN ↑TEITELMAN.
↑MOST OF THE DEBUGGING AND INTERACTIVE FACILITIES AS WELL AS THE
GENERAL DESIGN PHILOSOPHY OF ↑-UCI LISP↑- WERE INSPIRED BY THE
↑-BBN LISP↑- SYSTEM.
↑SECONDLY, WE WERE ABLE TO USE MUCH OF THEIR CODE DIRECTLY,
SINCE IT WAS WRITTEN IN ↑-LISP↑-, MAKING IT POSSIBLE TO OBTAIN
A LARGE, WELL-WRITTEN AND DEBUGGED SYSTEM IN A FRACTION OF THE
TIME AND EFFORT IT WOULD HAVE TAKEN TO WRITE IT FROM SCRATCH.
↑FINALLY, WE HAVE MADE EXTENSIVE USE OF THE ↑←↑-BBN LISP TENEX
REFERENCE MANUAL↑←↑- AS A SOURCE OF RAW MATERIAL FOR OUR
DOCUMENTATION.
↑IN PARTICULAR, MUCH OF THE MATERIAL IN THE CHAPTERS ON THE
↑-BREAK↑- AND ↑-ERROR↑- PACKAGES AND THE EDITOR IS A
REVISED VERSION OF THE MATERIAL IN THE ↑←↑-BBN LISP MANUAL↑←↑-.
↑WE TAKE FULL RESPONSIBILITY FOR THE ERRORS AND DEFICIENCIES
PRODUCED BY SUCH AN ARRANGEMENT, WHILE GREATFULLY
ACKNOWLEDGING ↑-BBN↑-'S AID IN PROVIDING MUCH OF THE BASIC
DOCUMENTATION.
↑WE ARE ALSO IN DEBT TO SEVERAL PEOPLE AT ↑-BBN↑- FOR THEIR AID
IN OBTAINING AND EXPLAINING THIS MATERIAL, PARTICULARLY
↑JIM ↑GOODWIN, ↑ALICE ↑HARTLEY AND THE DIRECTOR OF THE
↑ARTIFICIAL ↑INTELLIGENCE ↑GROUP, ↑JAIME ↑CARBONELL.
.SP2
↑THIS MANUAL IS THE WORK OF MANY PEOPLE AS WELL AS THE LISTED
AUTHORS - IN PARTICULAR ↑WARREN ↑TEITELMAN, FORMERLY OF ↑-BBN↑-
AND NOW AT ↑XEROX ↑PALO ↑ALTO ↑RESEARCH ↑CENTER, WHO PRODUCED
THE ORIGINAL ↑-BBN LISP↑- DOCUMENTATION AND THE LIONS
SHARE OF THE ORIGINAL CODE.
↑WE ARE ALSO IN DEBT TO ↑MARION ↑KAUFMAN AND ↑PHYLLIS ↑SIEGEL
WHO DID DAILY BATTLE WITH THE ↑-PDP-10↑- TO PRODUCE THE
↑-RUNOFF↑- FILES FROM WHICH THIS DOCUMENTATION IS PRODUCED.
.SP2
↑LAST, BUT MOST ASSUREDLY NOT LEAST IN THE ROSTER OF THOSE
WHO HAVE MADE THIS SYSTEM POSSIBLE ARE ↑LYNETTE ↑BOBROW,
↑KATHY ↑BURTON AND ↑CONNIE ↑LEWIS WHO
LIVED THROUGH THE MANY DISCUSSIONS, ALL NIGHT PROGRAMMING
SESSIONS AND BATTLE-FATIGUE OF THE YEAR DURING WHICH THIS
SYSTEM WAS IMPLEMENTED.
.SP2
↑←↑-ENJOY, ENJOY↑←↑-!